Package org.python.pydev.navigator.properties

Source Code of org.python.pydev.navigator.properties.PyPropertyTester

/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package org.python.pydev.navigator.properties;

import org.eclipse.core.expressions.PropertyTester;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.python.pydev.navigator.elements.IWrappedResource;
import org.python.pydev.navigator.elements.PythonProjectSourceFolder;

/**
*
* @author Fabio
* @see org.eclipse.core.internal.propertytester#ProjectPropertyTester
*
* If not done, we get:
*
* No property tester contributes a property org.eclipse.core.resources.open to
* type class org.python.pydev.navigator.elements.PythonProjectSourceFolder
*/
public class PyPropertyTester extends PropertyTester {

    protected boolean toBoolean(Object expectedValue) {
        if (expectedValue instanceof Boolean) {
            return ((Boolean) expectedValue).booleanValue();
        }
        return true;
    }

    public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
        if (expectedValue == null) {
            return false;
        }
        if ("open".equals(property)) {
            if (receiver instanceof PythonProjectSourceFolder) {
                PythonProjectSourceFolder pythonProjectSourceFolder = (PythonProjectSourceFolder) receiver;
                IResource actualObject = pythonProjectSourceFolder.getActualObject();
                if (actualObject instanceof IProject) {
                    return ((IProject) actualObject).isOpen() == toBoolean(expectedValue);
                }
            }
        } else if ("name".equals(property)) {
            if (receiver instanceof IWrappedResource) {
                IWrappedResource wrappedResource = (IWrappedResource) receiver;
                IResource resource = (IResource) wrappedResource.getAdapter(IResource.class);
                if (resource != null) {
                    return expectedValue.toString().equals(resource.getName());
                }
            }
        }
        return false;
    }

}
TOP

Related Classes of org.python.pydev.navigator.properties.PyPropertyTester

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.